Many computerized workflows access data files in a known, repeated, well-ordered manner. Therefore, disk blocks that are likely to be read can be predicted with some accuracy for these workflows. Storage devices (e.g., disks, tapes, redundant arrays of independent disks (RAID)) may have the ability to pre-read data blocks. Having the ability to predictive data caching using pre-read behavior may also be described as having the ability to do read-ahead. Therefore, pre-read and read-ahead are used interchangeably herein. When pre-read data blocks are blocks that are actually needed (e.g., the object of a subsequent actual read request), dramatic performance increases are achieved. For example, pre-reading a block that is then the object of an actual read can reduce the latency for that actual read from the longer latency associated with accessing a storage device (e.g., disk, tape) to the shorter latency associated with accessing memory. Conventionally, successful pre-reads may have depended on factors including luck, coincidental spatial locality of data blocks, and predictions based on observed behavior.